import request from '@/utils/request'

/**
 * 查询验收任务列表（调用收货管理接口，查询状态为1的数据）
 * @param {Object} query 查询参数
 */
export function listInspectTask(query) {
  return request({
    url: '/storage/buyStore/list',  // 使用收货管理的接口
    method: 'get',
    params: query
  })
}

/**
 * 获取验收任务详情
 * @param {String} billsId 单据ID
 */
export function getInspectTask(billsId) {
  return request({
    url: '/storage/buyStore/' + billsId,
    method: 'get'
  })
}


/**
 * 完成验收任务
 * @param {Number} id 任务ID
 */
export function completeInspectTask(id) {
  return request({
    url: '/storage/buyStore/complete/' + id,
    method: 'post'
  })
}

/**
 * 删除验收任务
 * @param {Number} id 任务ID
 */
export function delInspectTask(id) {
  return request({
    url: '/storage/buyStore/' + id,
    method: 'delete'
  })
}

/**
 * 确认验收（调用BuyStoreController的验收接口）
 * @param {Object} data 验收确认数据
 * data.billsId: 单据ID
 * data.detailList: 明细列表（可选，如果有的话）
 */
export function confirmInspect(data) {
  return request({
    url: '/storage/buyStore/inspect/accept',
    method: 'post',
    data: {
      billsId: data.billsId,
      detailList: data.detailList || []
    }
  })
}

/**
 * 获取验收管理统计数据
 * 状态定义：0-未收货，1-已收货待验收，2-已验收待上架，3-已上架，4-异常，5-作废
 */
export function getInspectStatistics() {
  return request({
    url: '/storage/buyStore/list',
    method: 'get',
    params: {
      pageNum: 1,
      pageSize: 999999,
      type: '1'  // 验收管理
    }
  }).then(response => {
    const data = response.rows || []
    return {
      totalTasks: data.length,
      pendingTasks: data.filter(item => item.billsState === '0' || item.billsState === '1').length,
      completedTasks: data.filter(item => item.billsState === '2' || item.billsState === '3').length,
      exceptionTasks: data.filter(item => item.billsState === '4' || item.billsState === '5').length
    }
  })
}

/**
 * 标记异常（调用BuyStoreController的验收拒收接口）
 * @param {Object} data 异常数据
 * data.billsId: 单据ID
 * data.exceptionReason: 异常原因
 */
export function markException(data) {
  return request({
    url: '/storage/buyStore/inspect/reject',
    method: 'post',
    data: {
      billsId: data.billsId,
      rejectReason: data.exceptionReason
    }
  })
}

